package com.totoro.utils;
/**
 * 异常类型说明枚举
 * @author XiongSir
 *
 */
public enum ErrorCodeEnum {
	/*******************通用异常定义*******************/
	/**对象为空**/
	NULL_OBJECT("NULL_OBJECT","对象为空"),
    /**未知错误**/
    UNKNOWN_ERROR("UNKNOWN_ERROR","系统繁忙，请稍后再试...."),
    /** 系统错误 */
    SYSTEM_FAILURE("SYSTEM_FAILURE", "系统错误"),
    /** 参数为空 */
    NULL_ARGUMENT("NULL_ARGUMENT", "参数为空"),
    /** 参数不正确 */
    ILLEGAL_ARGUMENT("ILLEGAL_ARGUMENT", "参数不正确"),
    /** 其它异常 */
    OTHER_ERROR(" OTHER_ERROR", "其它异常"),
    
	/*******************DAO层异常定义*******************/
    /**无法获取数据源**/
	SQL_JNDIDATASOURCE_ERR("SQL_JNDIDATASOURCE_ERR", "无法通过JNDI获取数据源"),
	 /**无法获取数据源**/
	SQL_DATASOURCE_ERR("SQL_DATASOURCE_ERR", "无法获取数据源"),
	 /**无法获取数据源**/
	SQL_CONNECTION_ERR("SQL_CONNECTION_ERR", "无法获取连接"),
    /**未正常关闭ResultSet**/
	SQL_CLOSE_RS_ERR("SQL_CLOSE_RS_ERR", "ResultSet未正常关闭"),
	 /**未正常关闭Statement**/
	SQL_CLOSE_STAT_ERR("SQL_CLOSE_STAT_ERR", "Statement未正常关闭"),
	/**未正常关闭Connection**/
	SQL_CLOSE_CONN_ERR("SQL_CLOSE_CONN_ERR", "Connection未正常关闭"),
	/**SQL参数装配错误**/
	SQL_ASSEMBLE_PARAMS_ERR("SQL_ASSEMBLE_PARAMS_ERR", "SQL参数装配错误"),
	/**SQL实体查询错误**/
	SQL_QUERY_ENTITY_ERR("SQL_QUERY_ENTITY_ERR", "SQL实体查询错误"),
	/**SQL映射查询错误**/
	SQL_QUERY_MAPPING_ERR("SQL_QUERY_MAPPING_ERR", "SQL映射查询错误"),
	/**SQL更新数据错误**/
	SQL_UPDATE_ERR("SQL_UPDATE_ERR", "SQL更新数据错误[增删改]"),
	/**没有更新数据**/
	SQL_NO_UPDATED_ERR("SQL_NO_UPDATED_ERR", "没有更新数据"),
	/**SQL插入数据错误**/
	SQL_INSERT_ERR("SQL_UPDATE_ERR", "SQL插入数据错误"),
	/**记录映射实体错误**/
	SQL_RECORD_TO_ENTITY_ERR("SQL_RECORD_TO_ENTITY_ERR", "记录映射实体错误"),
	/**记录映射实体错误[MAP]**/
	SQL_RECORD_TO_ENTRY_ERR("SQL_RECORD_TO_ENTRY_ERR", "记录映射实体错误[MAP]"),
	/**无法正常开启事务**/
	SQL_OPEN_TRANCATION_ERR("SQL_OPEN_TRANCATION_ERR", "无法正常开启事务"),
	/**无法正常提交事务**/
	SQL_COMMIT_TRANCATION_ERR("SQL_COMMIT_TRANCATION_ERR", "无法正常提交事务"),
	/**无法正常关闭事务**/
	SQL_CLOSE_TRANCATION_ERR("SQL_CLOSE_TRANCATION_ERR", "无法正常关闭事务"),
	/**无法正常回滚事务**/
	SQL_ROLLBACK_TRANCATION_ERR("SQL_ROLLBACK_TRANCATION_ERR", "无法正常回滚事务"),
	
	/*******************Service层异常定义*******************/
	/**无法根据条件得到指定实体**/
	SERVICE_NO_SUCH_RECORD_ERR("SERVICE_NO_SUCH_RECORD_ERR", "无法根据条件得到指定实体"),
	/**无法根据条件得到指定用户**/
	SERVICE_NO_SUCH_USER_ERR("SERVICE_NO_SUCH_USER_ERR", "用户名或密码不匹配！"),
	/**无法根据条件得到指定实体集合**/
	SERVICE_NO_SUCH_RECORDS_ERR("SERVICE_NO_SUCH_RECORDS_ERR", "无法根据条件得到指定实体集合"),
	/**无法获取记数总数**/
	SERVICE_COUNT_RECORDS_ERR("SERVICE_COUNT_RECORDS_ERR", "无法获取记数总数"),
	/**无法添加数据**/
	SERVICE_ADD_ENTITY_ERR("SERVICE_ADD_ENTITY_ERR", "无法添加数据"),
	/**无法修改数据**/
	SERVICE_EDIT_ENTITY_ERR("SERVICE_EDIT_ENTITY_ERR", "无法修改数据"),
	/**无法删除数据**/
	SERVICE_DELETE_ENTITY_ERR("SERVICE_DELETE_ENTITY_ERR", "无法删除数据"),
	
	/*******************Control层异常定义*******************/
	/**没有对应的Action来处理请求**/
	CONTROL_NO_ACTION_ERR("CONTROL_NO_ACTION_ERR", "没有对应的Action来处理请求"),
	/**控制层发生异常**/
	CONTROL_COMMON_ERR("CONTROL_COMMON_ERR", "控制层发生异常"),
	/**控制层发生IO异常**/
	CONTROL_IO_ERR("CONTROL_IO_ERR", "控制层发生IO异常"),
	/**控制层发生访问权限异常**/
	CONTROL_ACCESS_ERR("CONTROL_ACCESS_ERR", "控制层发生访问权限异常"),
	/**控制层发生初始化Action异常**/
	CONTROL_INIT_ACTION_ERR("CONTROL_INIT_ACTION_ERR", "控制层发生初始化Action异常"),
	/**控制层发生找不到CLASS文件异常**/
	CONTROL_NOTFOUND_CLASS_ERR("CONTROL_NOTFOUND_CLASS_ERR", "控制层发生初始化Action异常");
    private String value;
    private String message;

    private ErrorCodeEnum(String value, String message) {
        this.setValue(value);
        this.setMessage(message);
    }

    public String getValue() {
        return value;
    }

    public void setValue(String value) {
        this.value = value;
    }

	public String getMessage() {
		return message;
	}

	public void setMessage(String message) {
		this.message = message;
	}
	/**
     * 根据枚举值获取枚举对象，如果找不到对应的枚举返回<code>null</code>
     *
     * @param value 枚举值
     * @return 枚举对象
     */
    public static ErrorCodeEnum getEnumByValue(String value) {
        for (ErrorCodeEnum resultCode : ErrorCodeEnum.values()) {
            if (resultCode.getValue().equals(value)) {
                return resultCode;
            }
        }
        return null;
    }

 
   
}
